/*
* Copyright (c) Microsoft Corporation. All rights reserved.
* Copyright (c) 2023 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* This file has been modified by Huawei to verify type inference by adding verification statements.
*/

// === tests/cases/compiler/binaryArithmeticControlFlowGraphNotTooLarge.ts ===
declare function AssertType(value:any, type:string):void;
// Repro from #29926 (expanded 10x for good measure)

const foo = function (this: any) {
AssertType(foo, "(any) => void");
AssertType(function (this: any) {    let a, b, c, d, ab, bc, cd, da, blocks = this.blocks;    if (this.first) {        a = blocks[0] - 1;        a = (a << 3) | (a >>> 29);        d = ((a & 0xefcdab89) | (~a & 0x98badcfe)) + blocks[1] + 271733878;        d = (d << 7) | (d >>> 25);        c = ((d & a) | (~d & 0xefcdab89)) + blocks[2] - 1732584194;        c = (c << 11) | (c >>> 21);        b = ((c & d) | (~c & a)) + blocks[3] - 271733879;        b = (b << 19) | (b >>> 13);    } else {        a = this.h0;        b = this.h1;        c = this.h2;        d = this.h3;        a += ((b & c) | (~b & d)) + blocks[0];        a = (a << 3) | (a >>> 29);        d += ((a & b) | (~a & c)) + blocks[1];        d = (d << 7) | (d >>> 25);        c += ((d & a) | (~d & b)) + blocks[2];        c = (c << 11) | (c >>> 21);        b += ((c & d) | (~c & a)) + blocks[3];        b = (b << 19) | (b >>> 13);    }    a += ((b & c) | (~b & d)) + blocks[4];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[5];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[6];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[7];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[8];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[9];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[10];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[11];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[12];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[13];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[14];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[15];    b = (b << 19) | (b >>> 13);    bc = b & c;    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[8] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[12] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[9] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[13] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[10] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[14] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[11] + 1518500249;    c = (c << 9) | (c >>> 23);    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b ^ c;    a += (bc ^ d) + blocks[0] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[8] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[4] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[12] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[2] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[10] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[6] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[14] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[1] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[9] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[5] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[13] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[3] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[11] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[7] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[15] + 1859775393;    b = (b << 15) | (b >>> 17);    a += ((b & c) | (~b & d)) + blocks[4];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[5];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[6];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[7];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[8];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[9];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[10];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[11];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[12];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[13];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[14];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[15];    b = (b << 19) | (b >>> 13);    bc = b & c;    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[8] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[12] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[9] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[13] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[10] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[14] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[11] + 1518500249;    c = (c << 9) | (c >>> 23);    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b ^ c;    a += (bc ^ d) + blocks[0] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[8] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[4] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[12] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[2] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[10] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[6] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[14] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[1] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[9] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[5] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[13] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[3] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[11] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[7] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[15] + 1859775393;    b = (b << 15) | (b >>> 17);    a += ((b & c) | (~b & d)) + blocks[4];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[5];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[6];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[7];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[8];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[9];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[10];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[11];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[12];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[13];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[14];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[15];    b = (b << 19) | (b >>> 13);    bc = b & c;    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[8] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[12] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[9] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[13] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[10] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[14] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[11] + 1518500249;    c = (c << 9) | (c >>> 23);    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b ^ c;    a += (bc ^ d) + blocks[0] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[8] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[4] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[12] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[2] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[10] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[6] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[14] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[1] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[9] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[5] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[13] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[3] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[11] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[7] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[15] + 1859775393;    b = (b << 15) | (b >>> 17);    a += ((b & c) | (~b & d)) + blocks[4];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[5];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[6];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[7];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[8];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[9];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[10];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[11];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[12];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[13];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[14];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[15];    b = (b << 19) | (b >>> 13);    bc = b & c;    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[8] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[12] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[9] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[13] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[10] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[14] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[11] + 1518500249;    c = (c << 9) | (c >>> 23);    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b ^ c;    a += (bc ^ d) + blocks[0] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[8] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[4] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[12] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[2] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[10] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[6] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[14] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[1] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[9] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[5] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[13] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[3] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[11] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[7] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[15] + 1859775393;    b = (b << 15) | (b >>> 17);    a += ((b & c) | (~b & d)) + blocks[4];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[5];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[6];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[7];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[8];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[9];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[10];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[11];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[12];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[13];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[14];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[15];    b = (b << 19) | (b >>> 13);    bc = b & c;    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[8] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[12] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[9] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[13] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[10] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[14] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[11] + 1518500249;    c = (c << 9) | (c >>> 23);    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b ^ c;    a += (bc ^ d) + blocks[0] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[8] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[4] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[12] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[2] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[10] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[6] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[14] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[1] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[9] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[5] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[13] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[3] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[11] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[7] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[15] + 1859775393;    b = (b << 15) | (b >>> 17);    a += ((b & c) | (~b & d)) + blocks[4];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[5];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[6];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[7];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[8];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[9];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[10];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[11];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[12];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[13];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[14];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[15];    b = (b << 19) | (b >>> 13);    bc = b & c;    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[8] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[12] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[9] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[13] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[10] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[14] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[11] + 1518500249;    c = (c << 9) | (c >>> 23);    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b ^ c;    a += (bc ^ d) + blocks[0] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[8] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[4] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[12] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[2] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[10] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[6] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[14] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[1] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[9] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[5] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[13] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[3] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[11] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[7] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[15] + 1859775393;    b = (b << 15) | (b >>> 17);    a += ((b & c) | (~b & d)) + blocks[4];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[5];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[6];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[7];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[8];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[9];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[10];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[11];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[12];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[13];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[14];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[15];    b = (b << 19) | (b >>> 13);    bc = b & c;    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[8] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[12] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[9] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[13] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[10] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[14] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[11] + 1518500249;    c = (c << 9) | (c >>> 23);    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b ^ c;    a += (bc ^ d) + blocks[0] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[8] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[4] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[12] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[2] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[10] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[6] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[14] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[1] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[9] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[5] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[13] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[3] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[11] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[7] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[15] + 1859775393;    b = (b << 15) | (b >>> 17);    a += ((b & c) | (~b & d)) + blocks[4];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[5];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[6];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[7];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[8];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[9];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[10];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[11];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[12];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[13];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[14];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[15];    b = (b << 19) | (b >>> 13);    bc = b & c;    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[8] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[12] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[9] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[13] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[10] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[14] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[11] + 1518500249;    c = (c << 9) | (c >>> 23);    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b ^ c;    a += (bc ^ d) + blocks[0] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[8] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[4] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[12] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[2] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[10] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[6] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[14] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[1] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[9] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[5] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[13] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[3] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[11] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[7] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[15] + 1859775393;    b = (b << 15) | (b >>> 17);    a += ((b & c) | (~b & d)) + blocks[4];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[5];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[6];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[7];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[8];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[9];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[10];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[11];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[12];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[13];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[14];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[15];    b = (b << 19) | (b >>> 13);    bc = b & c;    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[8] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[12] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[9] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[13] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[10] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[14] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[11] + 1518500249;    c = (c << 9) | (c >>> 23);    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b ^ c;    a += (bc ^ d) + blocks[0] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[8] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[4] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[12] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[2] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[10] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[6] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[14] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[1] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[9] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[5] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[13] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[3] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[11] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[7] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[15] + 1859775393;    b = (b << 15) | (b >>> 17);    a += ((b & c) | (~b & d)) + blocks[4];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[5];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[6];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[7];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[8];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[9];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[10];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[11];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[12];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[13];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[14];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[15];    b = (b << 19) | (b >>> 13);    bc = b & c;    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[8] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[12] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[9] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[13] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[10] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[14] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[11] + 1518500249;    c = (c << 9) | (c >>> 23);    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b ^ c;    a += (bc ^ d) + blocks[0] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[8] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[4] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[12] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[2] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[10] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[6] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[14] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[1] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[9] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[5] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[13] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[3] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[11] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[7] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[15] + 1859775393;    b = (b << 15) | (b >>> 17);    a += ((b & c) | (~b & d)) + blocks[4];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[5];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[6];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[7];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[8];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[9];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[10];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[11];    b = (b << 19) | (b >>> 13);    a += ((b & c) | (~b & d)) + blocks[12];    a = (a << 3) | (a >>> 29);    d += ((a & b) | (~a & c)) + blocks[13];    d = (d << 7) | (d >>> 25);    c += ((d & a) | (~d & b)) + blocks[14];    c = (c << 11) | (c >>> 21);    b += ((c & d) | (~c & a)) + blocks[15];    b = (b << 19) | (b >>> 13);    bc = b & c;    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[8] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[12] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[9] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[13] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[10] + 1518500249;    c = (c << 9) | (c >>> 23);    cd = c & d;    b += (cd | (c & a) | da) + blocks[14] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b & c;    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;    a = (a << 3) | (a >>> 29);    ab = a & b;    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;    d = (d << 5) | (d >>> 27);    da = d & a;    c += (da | (d & b) | ab) + blocks[11] + 1518500249;    c = (c << 9) | (c >>> 23);    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;    b = (b << 13) | (b >>> 19);    bc = b ^ c;    a += (bc ^ d) + blocks[0] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[8] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[4] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[12] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[2] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[10] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[6] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[14] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[1] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[9] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[5] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[13] + 1859775393;    b = (b << 15) | (b >>> 17);    bc = b ^ c;    a += (bc ^ d) + blocks[3] + 1859775393;    a = (a << 3) | (a >>> 29);    d += (bc ^ a) + blocks[11] + 1859775393;    d = (d << 9) | (d >>> 23);    da = d ^ a;    c += (da ^ b) + blocks[7] + 1859775393;    c = (c << 11) | (c >>> 21);    b += (da ^ c) + blocks[15] + 1859775393;    b = (b << 15) | (b >>> 17);    if (this.first) {        this.h0 = a + 1732584193 << 0;        this.h1 = b - 271733879 << 0;        this.h2 = c - 1732584194 << 0;        this.h3 = d + 271733878 << 0;        this.first = false;    } else {        this.h0 = this.h0 + a << 0;        this.h1 = this.h1 + b << 0;        this.h2 = this.h2 + c << 0;        this.h3 = this.h3 + d << 0;    }}, "(any) => void");
AssertType(this, "any");

    let a, b, c, d, ab, bc, cd, da, blocks = this.blocks;
AssertType(a, "any");
AssertType(b, "any");
AssertType(c, "any");
AssertType(d, "any");
AssertType(ab, "any");
AssertType(bc, "any");
AssertType(cd, "any");
AssertType(da, "any");
AssertType(blocks, "any");
AssertType(this.blocks, "any");
AssertType(this, "any");

    if (this.first) {
AssertType(this.first, "any");
AssertType(this, "any");

        a = blocks[0] - 1;
AssertType(a = blocks[0] - 1, "number");
AssertType(a, "any");
AssertType(blocks[0] - 1, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1, "int");

        a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

        d = ((a & 0xefcdab89) | (~a & 0x98badcfe)) + blocks[1] + 271733878;
AssertType(d = ((a & 0xefcdab89) | (~a & 0x98badcfe)) + blocks[1] + 271733878, "any");
AssertType(d, "any");
AssertType(((a & 0xefcdab89) | (~a & 0x98badcfe)) + blocks[1] + 271733878, "any");
AssertType(((a & 0xefcdab89) | (~a & 0x98badcfe)) + blocks[1], "any");
AssertType(((a & 0xefcdab89) | (~a & 0x98badcfe)), "number");
AssertType((a & 0xefcdab89) | (~a & 0x98badcfe), "number");
AssertType((a & 0xefcdab89), "number");
AssertType(a & 0xefcdab89, "number");
AssertType(a, "number");
AssertType(0xefcdab89, "int");
AssertType((~a & 0x98badcfe), "number");
AssertType(~a & 0x98badcfe, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(0x98badcfe, "int");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(271733878, "int");

        d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "any");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "any");
AssertType(25, "int");

        c = ((d & a) | (~d & 0xefcdab89)) + blocks[2] - 1732584194;
AssertType(c = ((d & a) | (~d & 0xefcdab89)) + blocks[2] - 1732584194, "number");
AssertType(c, "any");
AssertType(((d & a) | (~d & 0xefcdab89)) + blocks[2] - 1732584194, "number");
AssertType(((d & a) | (~d & 0xefcdab89)) + blocks[2], "any");
AssertType(((d & a) | (~d & 0xefcdab89)), "number");
AssertType((d & a) | (~d & 0xefcdab89), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & 0xefcdab89), "number");
AssertType(~d & 0xefcdab89, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(0xefcdab89, "int");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1732584194, "int");

        c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

        b = ((c & d) | (~c & a)) + blocks[3] - 271733879;
AssertType(b = ((c & d) | (~c & a)) + blocks[3] - 271733879, "number");
AssertType(b, "any");
AssertType(((c & d) | (~c & a)) + blocks[3] - 271733879, "number");
AssertType(((c & d) | (~c & a)) + blocks[3], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(271733879, "int");

        b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    } else {
        a = this.h0;
AssertType(a = this.h0, "any");
AssertType(a, "any");
AssertType(this.h0, "any");
AssertType(this, "any");

        b = this.h1;
AssertType(b = this.h1, "any");
AssertType(b, "any");
AssertType(this.h1, "any");
AssertType(this, "any");

        c = this.h2;
AssertType(c = this.h2, "any");
AssertType(c, "any");
AssertType(this.h2, "any");
AssertType(this, "any");

        d = this.h3;
AssertType(d = this.h3, "any");
AssertType(d, "any");
AssertType(this.h3, "any");
AssertType(this, "any");

        a += ((b & c) | (~b & d)) + blocks[0];
AssertType(a += ((b & c) | (~b & d)) + blocks[0], "any");
AssertType(a, "any");
AssertType(((b & c) | (~b & d)) + blocks[0], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "any");
AssertType(c, "any");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "any");
AssertType(d, "any");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");

        a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "any");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "any");
AssertType(29, "int");

        d += ((a & b) | (~a & c)) + blocks[1];
AssertType(d += ((a & b) | (~a & c)) + blocks[1], "any");
AssertType(d, "any");
AssertType(((a & b) | (~a & c)) + blocks[1], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "any");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "any");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");

        d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "any");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "any");
AssertType(25, "int");

        c += ((d & a) | (~d & b)) + blocks[2];
AssertType(c += ((d & a) | (~d & b)) + blocks[2], "any");
AssertType(c, "any");
AssertType(((d & a) | (~d & b)) + blocks[2], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "any");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");

        c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "any");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "any");
AssertType(21, "int");

        b += ((c & d) | (~c & a)) + blocks[3];
AssertType(b += ((c & d) | (~c & a)) + blocks[3], "any");
AssertType(b, "any");
AssertType(((c & d) | (~c & a)) + blocks[3], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");

        b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "any");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "any");
AssertType(13, "int");
    }

    a += ((b & c) | (~b & d)) + blocks[4];
AssertType(a += ((b & c) | (~b & d)) + blocks[4], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[4], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[5];
AssertType(d += ((a & b) | (~a & c)) + blocks[5], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[5], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[6];
AssertType(c += ((d & a) | (~d & b)) + blocks[6], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[6], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[7];
AssertType(b += ((c & d) | (~c & a)) + blocks[7], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[7], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[8];
AssertType(a += ((b & c) | (~b & d)) + blocks[8], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[8], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[9];
AssertType(d += ((a & b) | (~a & c)) + blocks[9], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[9], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[10];
AssertType(c += ((d & a) | (~d & b)) + blocks[10], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[10], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[11];
AssertType(b += ((c & d) | (~c & a)) + blocks[11], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[11], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[12];
AssertType(a += ((b & c) | (~b & d)) + blocks[12], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[12], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[13];
AssertType(d += ((a & b) | (~a & c)) + blocks[13], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[13], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[14];
AssertType(c += ((d & a) | (~d & b)) + blocks[14], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[14], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[15];
AssertType(b += ((c & d) | (~c & a)) + blocks[15], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[15], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;
AssertType(a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType((bc | (b & d) | (c & d)) + blocks[0], "any");
AssertType((bc | (b & d) | (c & d)), "number");
AssertType(bc | (b & d) | (c & d), "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[4], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[8] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[8], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[12] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[12], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[1], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[5], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[9] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[9], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[13] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[13], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[2], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[6], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[10] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[10], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[14] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[14], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[3], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[7], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[11] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[11], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;
AssertType(b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(b, "number");
AssertType(((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(((c & d) | (c & a) | da) + blocks[15], "any");
AssertType(((c & d) | (c & a) | da), "number");
AssertType((c & d) | (c & a) | da, "number");
AssertType((c & d) | (c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[0] + 1859775393;
AssertType(a += (bc ^ d) + blocks[0] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[0] + 1859775393, "any");
AssertType((bc ^ d) + blocks[0], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[8] + 1859775393;
AssertType(d += (bc ^ a) + blocks[8] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[8] + 1859775393, "any");
AssertType((bc ^ a) + blocks[8], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[4] + 1859775393;
AssertType(c += (da ^ b) + blocks[4] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[4] + 1859775393, "any");
AssertType((da ^ b) + blocks[4], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[12] + 1859775393;
AssertType(b += (da ^ c) + blocks[12] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[12] + 1859775393, "any");
AssertType((da ^ c) + blocks[12], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[2] + 1859775393;
AssertType(a += (bc ^ d) + blocks[2] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[2] + 1859775393, "any");
AssertType((bc ^ d) + blocks[2], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[10] + 1859775393;
AssertType(d += (bc ^ a) + blocks[10] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[10] + 1859775393, "any");
AssertType((bc ^ a) + blocks[10], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[6] + 1859775393;
AssertType(c += (da ^ b) + blocks[6] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[6] + 1859775393, "any");
AssertType((da ^ b) + blocks[6], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[14] + 1859775393;
AssertType(b += (da ^ c) + blocks[14] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[14] + 1859775393, "any");
AssertType((da ^ c) + blocks[14], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[1] + 1859775393;
AssertType(a += (bc ^ d) + blocks[1] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[1] + 1859775393, "any");
AssertType((bc ^ d) + blocks[1], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[9] + 1859775393;
AssertType(d += (bc ^ a) + blocks[9] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[9] + 1859775393, "any");
AssertType((bc ^ a) + blocks[9], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[5] + 1859775393;
AssertType(c += (da ^ b) + blocks[5] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[5] + 1859775393, "any");
AssertType((da ^ b) + blocks[5], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[13] + 1859775393;
AssertType(b += (da ^ c) + blocks[13] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[13] + 1859775393, "any");
AssertType((da ^ c) + blocks[13], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[3] + 1859775393;
AssertType(a += (bc ^ d) + blocks[3] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[3] + 1859775393, "any");
AssertType((bc ^ d) + blocks[3], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[11] + 1859775393;
AssertType(d += (bc ^ a) + blocks[11] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[11] + 1859775393, "any");
AssertType((bc ^ a) + blocks[11], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[7] + 1859775393;
AssertType(c += (da ^ b) + blocks[7] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[7] + 1859775393, "any");
AssertType((da ^ b) + blocks[7], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[15] + 1859775393;
AssertType(b += (da ^ c) + blocks[15] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[15] + 1859775393, "any");
AssertType((da ^ c) + blocks[15], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    a += ((b & c) | (~b & d)) + blocks[4];
AssertType(a += ((b & c) | (~b & d)) + blocks[4], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[4], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[5];
AssertType(d += ((a & b) | (~a & c)) + blocks[5], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[5], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[6];
AssertType(c += ((d & a) | (~d & b)) + blocks[6], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[6], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[7];
AssertType(b += ((c & d) | (~c & a)) + blocks[7], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[7], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[8];
AssertType(a += ((b & c) | (~b & d)) + blocks[8], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[8], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[9];
AssertType(d += ((a & b) | (~a & c)) + blocks[9], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[9], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[10];
AssertType(c += ((d & a) | (~d & b)) + blocks[10], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[10], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[11];
AssertType(b += ((c & d) | (~c & a)) + blocks[11], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[11], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[12];
AssertType(a += ((b & c) | (~b & d)) + blocks[12], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[12], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[13];
AssertType(d += ((a & b) | (~a & c)) + blocks[13], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[13], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[14];
AssertType(c += ((d & a) | (~d & b)) + blocks[14], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[14], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[15];
AssertType(b += ((c & d) | (~c & a)) + blocks[15], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[15], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;
AssertType(a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType((bc | (b & d) | (c & d)) + blocks[0], "any");
AssertType((bc | (b & d) | (c & d)), "number");
AssertType(bc | (b & d) | (c & d), "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[4], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[8] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[8], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[12] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[12], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[1], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[5], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[9] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[9], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[13] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[13], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[2], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[6], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[10] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[10], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[14] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[14], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[3], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[7], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[11] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[11], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;
AssertType(b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(b, "number");
AssertType(((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(((c & d) | (c & a) | da) + blocks[15], "any");
AssertType(((c & d) | (c & a) | da), "number");
AssertType((c & d) | (c & a) | da, "number");
AssertType((c & d) | (c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[0] + 1859775393;
AssertType(a += (bc ^ d) + blocks[0] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[0] + 1859775393, "any");
AssertType((bc ^ d) + blocks[0], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[8] + 1859775393;
AssertType(d += (bc ^ a) + blocks[8] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[8] + 1859775393, "any");
AssertType((bc ^ a) + blocks[8], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[4] + 1859775393;
AssertType(c += (da ^ b) + blocks[4] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[4] + 1859775393, "any");
AssertType((da ^ b) + blocks[4], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[12] + 1859775393;
AssertType(b += (da ^ c) + blocks[12] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[12] + 1859775393, "any");
AssertType((da ^ c) + blocks[12], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[2] + 1859775393;
AssertType(a += (bc ^ d) + blocks[2] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[2] + 1859775393, "any");
AssertType((bc ^ d) + blocks[2], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[10] + 1859775393;
AssertType(d += (bc ^ a) + blocks[10] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[10] + 1859775393, "any");
AssertType((bc ^ a) + blocks[10], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[6] + 1859775393;
AssertType(c += (da ^ b) + blocks[6] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[6] + 1859775393, "any");
AssertType((da ^ b) + blocks[6], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[14] + 1859775393;
AssertType(b += (da ^ c) + blocks[14] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[14] + 1859775393, "any");
AssertType((da ^ c) + blocks[14], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[1] + 1859775393;
AssertType(a += (bc ^ d) + blocks[1] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[1] + 1859775393, "any");
AssertType((bc ^ d) + blocks[1], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[9] + 1859775393;
AssertType(d += (bc ^ a) + blocks[9] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[9] + 1859775393, "any");
AssertType((bc ^ a) + blocks[9], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[5] + 1859775393;
AssertType(c += (da ^ b) + blocks[5] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[5] + 1859775393, "any");
AssertType((da ^ b) + blocks[5], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[13] + 1859775393;
AssertType(b += (da ^ c) + blocks[13] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[13] + 1859775393, "any");
AssertType((da ^ c) + blocks[13], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[3] + 1859775393;
AssertType(a += (bc ^ d) + blocks[3] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[3] + 1859775393, "any");
AssertType((bc ^ d) + blocks[3], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[11] + 1859775393;
AssertType(d += (bc ^ a) + blocks[11] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[11] + 1859775393, "any");
AssertType((bc ^ a) + blocks[11], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[7] + 1859775393;
AssertType(c += (da ^ b) + blocks[7] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[7] + 1859775393, "any");
AssertType((da ^ b) + blocks[7], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[15] + 1859775393;
AssertType(b += (da ^ c) + blocks[15] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[15] + 1859775393, "any");
AssertType((da ^ c) + blocks[15], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    a += ((b & c) | (~b & d)) + blocks[4];
AssertType(a += ((b & c) | (~b & d)) + blocks[4], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[4], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[5];
AssertType(d += ((a & b) | (~a & c)) + blocks[5], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[5], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[6];
AssertType(c += ((d & a) | (~d & b)) + blocks[6], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[6], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[7];
AssertType(b += ((c & d) | (~c & a)) + blocks[7], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[7], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[8];
AssertType(a += ((b & c) | (~b & d)) + blocks[8], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[8], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[9];
AssertType(d += ((a & b) | (~a & c)) + blocks[9], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[9], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[10];
AssertType(c += ((d & a) | (~d & b)) + blocks[10], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[10], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[11];
AssertType(b += ((c & d) | (~c & a)) + blocks[11], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[11], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[12];
AssertType(a += ((b & c) | (~b & d)) + blocks[12], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[12], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[13];
AssertType(d += ((a & b) | (~a & c)) + blocks[13], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[13], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[14];
AssertType(c += ((d & a) | (~d & b)) + blocks[14], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[14], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[15];
AssertType(b += ((c & d) | (~c & a)) + blocks[15], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[15], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;
AssertType(a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType((bc | (b & d) | (c & d)) + blocks[0], "any");
AssertType((bc | (b & d) | (c & d)), "number");
AssertType(bc | (b & d) | (c & d), "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[4], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[8] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[8], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[12] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[12], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[1], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[5], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[9] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[9], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[13] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[13], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[2], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[6], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[10] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[10], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[14] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[14], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[3], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[7], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[11] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[11], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;
AssertType(b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(b, "number");
AssertType(((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(((c & d) | (c & a) | da) + blocks[15], "any");
AssertType(((c & d) | (c & a) | da), "number");
AssertType((c & d) | (c & a) | da, "number");
AssertType((c & d) | (c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[0] + 1859775393;
AssertType(a += (bc ^ d) + blocks[0] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[0] + 1859775393, "any");
AssertType((bc ^ d) + blocks[0], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[8] + 1859775393;
AssertType(d += (bc ^ a) + blocks[8] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[8] + 1859775393, "any");
AssertType((bc ^ a) + blocks[8], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[4] + 1859775393;
AssertType(c += (da ^ b) + blocks[4] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[4] + 1859775393, "any");
AssertType((da ^ b) + blocks[4], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[12] + 1859775393;
AssertType(b += (da ^ c) + blocks[12] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[12] + 1859775393, "any");
AssertType((da ^ c) + blocks[12], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[2] + 1859775393;
AssertType(a += (bc ^ d) + blocks[2] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[2] + 1859775393, "any");
AssertType((bc ^ d) + blocks[2], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[10] + 1859775393;
AssertType(d += (bc ^ a) + blocks[10] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[10] + 1859775393, "any");
AssertType((bc ^ a) + blocks[10], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[6] + 1859775393;
AssertType(c += (da ^ b) + blocks[6] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[6] + 1859775393, "any");
AssertType((da ^ b) + blocks[6], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[14] + 1859775393;
AssertType(b += (da ^ c) + blocks[14] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[14] + 1859775393, "any");
AssertType((da ^ c) + blocks[14], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[1] + 1859775393;
AssertType(a += (bc ^ d) + blocks[1] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[1] + 1859775393, "any");
AssertType((bc ^ d) + blocks[1], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[9] + 1859775393;
AssertType(d += (bc ^ a) + blocks[9] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[9] + 1859775393, "any");
AssertType((bc ^ a) + blocks[9], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[5] + 1859775393;
AssertType(c += (da ^ b) + blocks[5] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[5] + 1859775393, "any");
AssertType((da ^ b) + blocks[5], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[13] + 1859775393;
AssertType(b += (da ^ c) + blocks[13] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[13] + 1859775393, "any");
AssertType((da ^ c) + blocks[13], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[3] + 1859775393;
AssertType(a += (bc ^ d) + blocks[3] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[3] + 1859775393, "any");
AssertType((bc ^ d) + blocks[3], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[11] + 1859775393;
AssertType(d += (bc ^ a) + blocks[11] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[11] + 1859775393, "any");
AssertType((bc ^ a) + blocks[11], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[7] + 1859775393;
AssertType(c += (da ^ b) + blocks[7] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[7] + 1859775393, "any");
AssertType((da ^ b) + blocks[7], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[15] + 1859775393;
AssertType(b += (da ^ c) + blocks[15] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[15] + 1859775393, "any");
AssertType((da ^ c) + blocks[15], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    a += ((b & c) | (~b & d)) + blocks[4];
AssertType(a += ((b & c) | (~b & d)) + blocks[4], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[4], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[5];
AssertType(d += ((a & b) | (~a & c)) + blocks[5], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[5], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[6];
AssertType(c += ((d & a) | (~d & b)) + blocks[6], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[6], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[7];
AssertType(b += ((c & d) | (~c & a)) + blocks[7], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[7], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[8];
AssertType(a += ((b & c) | (~b & d)) + blocks[8], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[8], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[9];
AssertType(d += ((a & b) | (~a & c)) + blocks[9], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[9], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[10];
AssertType(c += ((d & a) | (~d & b)) + blocks[10], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[10], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[11];
AssertType(b += ((c & d) | (~c & a)) + blocks[11], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[11], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[12];
AssertType(a += ((b & c) | (~b & d)) + blocks[12], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[12], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[13];
AssertType(d += ((a & b) | (~a & c)) + blocks[13], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[13], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[14];
AssertType(c += ((d & a) | (~d & b)) + blocks[14], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[14], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[15];
AssertType(b += ((c & d) | (~c & a)) + blocks[15], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[15], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;
AssertType(a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType((bc | (b & d) | (c & d)) + blocks[0], "any");
AssertType((bc | (b & d) | (c & d)), "number");
AssertType(bc | (b & d) | (c & d), "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[4], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[8] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[8], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[12] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[12], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[1], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[5], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[9] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[9], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[13] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[13], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[2], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[6], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[10] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[10], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[14] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[14], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[3], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[7], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[11] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[11], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;
AssertType(b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(b, "number");
AssertType(((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(((c & d) | (c & a) | da) + blocks[15], "any");
AssertType(((c & d) | (c & a) | da), "number");
AssertType((c & d) | (c & a) | da, "number");
AssertType((c & d) | (c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[0] + 1859775393;
AssertType(a += (bc ^ d) + blocks[0] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[0] + 1859775393, "any");
AssertType((bc ^ d) + blocks[0], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[8] + 1859775393;
AssertType(d += (bc ^ a) + blocks[8] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[8] + 1859775393, "any");
AssertType((bc ^ a) + blocks[8], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[4] + 1859775393;
AssertType(c += (da ^ b) + blocks[4] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[4] + 1859775393, "any");
AssertType((da ^ b) + blocks[4], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[12] + 1859775393;
AssertType(b += (da ^ c) + blocks[12] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[12] + 1859775393, "any");
AssertType((da ^ c) + blocks[12], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[2] + 1859775393;
AssertType(a += (bc ^ d) + blocks[2] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[2] + 1859775393, "any");
AssertType((bc ^ d) + blocks[2], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[10] + 1859775393;
AssertType(d += (bc ^ a) + blocks[10] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[10] + 1859775393, "any");
AssertType((bc ^ a) + blocks[10], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[6] + 1859775393;
AssertType(c += (da ^ b) + blocks[6] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[6] + 1859775393, "any");
AssertType((da ^ b) + blocks[6], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[14] + 1859775393;
AssertType(b += (da ^ c) + blocks[14] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[14] + 1859775393, "any");
AssertType((da ^ c) + blocks[14], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[1] + 1859775393;
AssertType(a += (bc ^ d) + blocks[1] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[1] + 1859775393, "any");
AssertType((bc ^ d) + blocks[1], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[9] + 1859775393;
AssertType(d += (bc ^ a) + blocks[9] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[9] + 1859775393, "any");
AssertType((bc ^ a) + blocks[9], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[5] + 1859775393;
AssertType(c += (da ^ b) + blocks[5] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[5] + 1859775393, "any");
AssertType((da ^ b) + blocks[5], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[13] + 1859775393;
AssertType(b += (da ^ c) + blocks[13] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[13] + 1859775393, "any");
AssertType((da ^ c) + blocks[13], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[3] + 1859775393;
AssertType(a += (bc ^ d) + blocks[3] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[3] + 1859775393, "any");
AssertType((bc ^ d) + blocks[3], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[11] + 1859775393;
AssertType(d += (bc ^ a) + blocks[11] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[11] + 1859775393, "any");
AssertType((bc ^ a) + blocks[11], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[7] + 1859775393;
AssertType(c += (da ^ b) + blocks[7] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[7] + 1859775393, "any");
AssertType((da ^ b) + blocks[7], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[15] + 1859775393;
AssertType(b += (da ^ c) + blocks[15] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[15] + 1859775393, "any");
AssertType((da ^ c) + blocks[15], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    a += ((b & c) | (~b & d)) + blocks[4];
AssertType(a += ((b & c) | (~b & d)) + blocks[4], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[4], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[5];
AssertType(d += ((a & b) | (~a & c)) + blocks[5], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[5], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[6];
AssertType(c += ((d & a) | (~d & b)) + blocks[6], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[6], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[7];
AssertType(b += ((c & d) | (~c & a)) + blocks[7], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[7], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[8];
AssertType(a += ((b & c) | (~b & d)) + blocks[8], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[8], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[9];
AssertType(d += ((a & b) | (~a & c)) + blocks[9], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[9], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[10];
AssertType(c += ((d & a) | (~d & b)) + blocks[10], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[10], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[11];
AssertType(b += ((c & d) | (~c & a)) + blocks[11], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[11], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[12];
AssertType(a += ((b & c) | (~b & d)) + blocks[12], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[12], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[13];
AssertType(d += ((a & b) | (~a & c)) + blocks[13], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[13], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[14];
AssertType(c += ((d & a) | (~d & b)) + blocks[14], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[14], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[15];
AssertType(b += ((c & d) | (~c & a)) + blocks[15], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[15], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;
AssertType(a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType((bc | (b & d) | (c & d)) + blocks[0], "any");
AssertType((bc | (b & d) | (c & d)), "number");
AssertType(bc | (b & d) | (c & d), "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[4], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[8] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[8], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[12] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[12], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[1], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[5], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[9] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[9], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[13] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[13], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[2], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[6], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[10] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[10], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[14] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[14], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[3], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[7], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[11] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[11], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;
AssertType(b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(b, "number");
AssertType(((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(((c & d) | (c & a) | da) + blocks[15], "any");
AssertType(((c & d) | (c & a) | da), "number");
AssertType((c & d) | (c & a) | da, "number");
AssertType((c & d) | (c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[0] + 1859775393;
AssertType(a += (bc ^ d) + blocks[0] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[0] + 1859775393, "any");
AssertType((bc ^ d) + blocks[0], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[8] + 1859775393;
AssertType(d += (bc ^ a) + blocks[8] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[8] + 1859775393, "any");
AssertType((bc ^ a) + blocks[8], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[4] + 1859775393;
AssertType(c += (da ^ b) + blocks[4] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[4] + 1859775393, "any");
AssertType((da ^ b) + blocks[4], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[12] + 1859775393;
AssertType(b += (da ^ c) + blocks[12] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[12] + 1859775393, "any");
AssertType((da ^ c) + blocks[12], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[2] + 1859775393;
AssertType(a += (bc ^ d) + blocks[2] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[2] + 1859775393, "any");
AssertType((bc ^ d) + blocks[2], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[10] + 1859775393;
AssertType(d += (bc ^ a) + blocks[10] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[10] + 1859775393, "any");
AssertType((bc ^ a) + blocks[10], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[6] + 1859775393;
AssertType(c += (da ^ b) + blocks[6] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[6] + 1859775393, "any");
AssertType((da ^ b) + blocks[6], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[14] + 1859775393;
AssertType(b += (da ^ c) + blocks[14] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[14] + 1859775393, "any");
AssertType((da ^ c) + blocks[14], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[1] + 1859775393;
AssertType(a += (bc ^ d) + blocks[1] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[1] + 1859775393, "any");
AssertType((bc ^ d) + blocks[1], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[9] + 1859775393;
AssertType(d += (bc ^ a) + blocks[9] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[9] + 1859775393, "any");
AssertType((bc ^ a) + blocks[9], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[5] + 1859775393;
AssertType(c += (da ^ b) + blocks[5] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[5] + 1859775393, "any");
AssertType((da ^ b) + blocks[5], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[13] + 1859775393;
AssertType(b += (da ^ c) + blocks[13] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[13] + 1859775393, "any");
AssertType((da ^ c) + blocks[13], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[3] + 1859775393;
AssertType(a += (bc ^ d) + blocks[3] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[3] + 1859775393, "any");
AssertType((bc ^ d) + blocks[3], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[11] + 1859775393;
AssertType(d += (bc ^ a) + blocks[11] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[11] + 1859775393, "any");
AssertType((bc ^ a) + blocks[11], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[7] + 1859775393;
AssertType(c += (da ^ b) + blocks[7] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[7] + 1859775393, "any");
AssertType((da ^ b) + blocks[7], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[15] + 1859775393;
AssertType(b += (da ^ c) + blocks[15] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[15] + 1859775393, "any");
AssertType((da ^ c) + blocks[15], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    a += ((b & c) | (~b & d)) + blocks[4];
AssertType(a += ((b & c) | (~b & d)) + blocks[4], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[4], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[5];
AssertType(d += ((a & b) | (~a & c)) + blocks[5], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[5], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[6];
AssertType(c += ((d & a) | (~d & b)) + blocks[6], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[6], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[7];
AssertType(b += ((c & d) | (~c & a)) + blocks[7], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[7], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[8];
AssertType(a += ((b & c) | (~b & d)) + blocks[8], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[8], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[9];
AssertType(d += ((a & b) | (~a & c)) + blocks[9], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[9], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[10];
AssertType(c += ((d & a) | (~d & b)) + blocks[10], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[10], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[11];
AssertType(b += ((c & d) | (~c & a)) + blocks[11], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[11], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[12];
AssertType(a += ((b & c) | (~b & d)) + blocks[12], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[12], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[13];
AssertType(d += ((a & b) | (~a & c)) + blocks[13], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[13], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[14];
AssertType(c += ((d & a) | (~d & b)) + blocks[14], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[14], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[15];
AssertType(b += ((c & d) | (~c & a)) + blocks[15], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[15], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;
AssertType(a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType((bc | (b & d) | (c & d)) + blocks[0], "any");
AssertType((bc | (b & d) | (c & d)), "number");
AssertType(bc | (b & d) | (c & d), "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[4], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[8] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[8], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[12] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[12], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[1], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[5], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[9] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[9], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[13] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[13], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[2], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[6], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[10] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[10], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[14] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[14], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[3], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[7], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[11] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[11], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;
AssertType(b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(b, "number");
AssertType(((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(((c & d) | (c & a) | da) + blocks[15], "any");
AssertType(((c & d) | (c & a) | da), "number");
AssertType((c & d) | (c & a) | da, "number");
AssertType((c & d) | (c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[0] + 1859775393;
AssertType(a += (bc ^ d) + blocks[0] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[0] + 1859775393, "any");
AssertType((bc ^ d) + blocks[0], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[8] + 1859775393;
AssertType(d += (bc ^ a) + blocks[8] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[8] + 1859775393, "any");
AssertType((bc ^ a) + blocks[8], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[4] + 1859775393;
AssertType(c += (da ^ b) + blocks[4] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[4] + 1859775393, "any");
AssertType((da ^ b) + blocks[4], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[12] + 1859775393;
AssertType(b += (da ^ c) + blocks[12] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[12] + 1859775393, "any");
AssertType((da ^ c) + blocks[12], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[2] + 1859775393;
AssertType(a += (bc ^ d) + blocks[2] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[2] + 1859775393, "any");
AssertType((bc ^ d) + blocks[2], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[10] + 1859775393;
AssertType(d += (bc ^ a) + blocks[10] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[10] + 1859775393, "any");
AssertType((bc ^ a) + blocks[10], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[6] + 1859775393;
AssertType(c += (da ^ b) + blocks[6] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[6] + 1859775393, "any");
AssertType((da ^ b) + blocks[6], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[14] + 1859775393;
AssertType(b += (da ^ c) + blocks[14] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[14] + 1859775393, "any");
AssertType((da ^ c) + blocks[14], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[1] + 1859775393;
AssertType(a += (bc ^ d) + blocks[1] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[1] + 1859775393, "any");
AssertType((bc ^ d) + blocks[1], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[9] + 1859775393;
AssertType(d += (bc ^ a) + blocks[9] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[9] + 1859775393, "any");
AssertType((bc ^ a) + blocks[9], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[5] + 1859775393;
AssertType(c += (da ^ b) + blocks[5] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[5] + 1859775393, "any");
AssertType((da ^ b) + blocks[5], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[13] + 1859775393;
AssertType(b += (da ^ c) + blocks[13] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[13] + 1859775393, "any");
AssertType((da ^ c) + blocks[13], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[3] + 1859775393;
AssertType(a += (bc ^ d) + blocks[3] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[3] + 1859775393, "any");
AssertType((bc ^ d) + blocks[3], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[11] + 1859775393;
AssertType(d += (bc ^ a) + blocks[11] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[11] + 1859775393, "any");
AssertType((bc ^ a) + blocks[11], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[7] + 1859775393;
AssertType(c += (da ^ b) + blocks[7] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[7] + 1859775393, "any");
AssertType((da ^ b) + blocks[7], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[15] + 1859775393;
AssertType(b += (da ^ c) + blocks[15] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[15] + 1859775393, "any");
AssertType((da ^ c) + blocks[15], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    a += ((b & c) | (~b & d)) + blocks[4];
AssertType(a += ((b & c) | (~b & d)) + blocks[4], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[4], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[5];
AssertType(d += ((a & b) | (~a & c)) + blocks[5], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[5], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[6];
AssertType(c += ((d & a) | (~d & b)) + blocks[6], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[6], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[7];
AssertType(b += ((c & d) | (~c & a)) + blocks[7], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[7], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[8];
AssertType(a += ((b & c) | (~b & d)) + blocks[8], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[8], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[9];
AssertType(d += ((a & b) | (~a & c)) + blocks[9], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[9], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[10];
AssertType(c += ((d & a) | (~d & b)) + blocks[10], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[10], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[11];
AssertType(b += ((c & d) | (~c & a)) + blocks[11], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[11], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[12];
AssertType(a += ((b & c) | (~b & d)) + blocks[12], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[12], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[13];
AssertType(d += ((a & b) | (~a & c)) + blocks[13], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[13], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[14];
AssertType(c += ((d & a) | (~d & b)) + blocks[14], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[14], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[15];
AssertType(b += ((c & d) | (~c & a)) + blocks[15], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[15], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;
AssertType(a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType((bc | (b & d) | (c & d)) + blocks[0], "any");
AssertType((bc | (b & d) | (c & d)), "number");
AssertType(bc | (b & d) | (c & d), "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[4], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[8] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[8], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[12] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[12], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[1], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[5], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[9] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[9], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[13] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[13], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[2], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[6], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[10] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[10], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[14] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[14], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[3], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[7], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[11] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[11], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;
AssertType(b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(b, "number");
AssertType(((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(((c & d) | (c & a) | da) + blocks[15], "any");
AssertType(((c & d) | (c & a) | da), "number");
AssertType((c & d) | (c & a) | da, "number");
AssertType((c & d) | (c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[0] + 1859775393;
AssertType(a += (bc ^ d) + blocks[0] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[0] + 1859775393, "any");
AssertType((bc ^ d) + blocks[0], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[8] + 1859775393;
AssertType(d += (bc ^ a) + blocks[8] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[8] + 1859775393, "any");
AssertType((bc ^ a) + blocks[8], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[4] + 1859775393;
AssertType(c += (da ^ b) + blocks[4] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[4] + 1859775393, "any");
AssertType((da ^ b) + blocks[4], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[12] + 1859775393;
AssertType(b += (da ^ c) + blocks[12] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[12] + 1859775393, "any");
AssertType((da ^ c) + blocks[12], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[2] + 1859775393;
AssertType(a += (bc ^ d) + blocks[2] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[2] + 1859775393, "any");
AssertType((bc ^ d) + blocks[2], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[10] + 1859775393;
AssertType(d += (bc ^ a) + blocks[10] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[10] + 1859775393, "any");
AssertType((bc ^ a) + blocks[10], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[6] + 1859775393;
AssertType(c += (da ^ b) + blocks[6] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[6] + 1859775393, "any");
AssertType((da ^ b) + blocks[6], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[14] + 1859775393;
AssertType(b += (da ^ c) + blocks[14] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[14] + 1859775393, "any");
AssertType((da ^ c) + blocks[14], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[1] + 1859775393;
AssertType(a += (bc ^ d) + blocks[1] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[1] + 1859775393, "any");
AssertType((bc ^ d) + blocks[1], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[9] + 1859775393;
AssertType(d += (bc ^ a) + blocks[9] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[9] + 1859775393, "any");
AssertType((bc ^ a) + blocks[9], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[5] + 1859775393;
AssertType(c += (da ^ b) + blocks[5] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[5] + 1859775393, "any");
AssertType((da ^ b) + blocks[5], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[13] + 1859775393;
AssertType(b += (da ^ c) + blocks[13] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[13] + 1859775393, "any");
AssertType((da ^ c) + blocks[13], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[3] + 1859775393;
AssertType(a += (bc ^ d) + blocks[3] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[3] + 1859775393, "any");
AssertType((bc ^ d) + blocks[3], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[11] + 1859775393;
AssertType(d += (bc ^ a) + blocks[11] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[11] + 1859775393, "any");
AssertType((bc ^ a) + blocks[11], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[7] + 1859775393;
AssertType(c += (da ^ b) + blocks[7] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[7] + 1859775393, "any");
AssertType((da ^ b) + blocks[7], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[15] + 1859775393;
AssertType(b += (da ^ c) + blocks[15] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[15] + 1859775393, "any");
AssertType((da ^ c) + blocks[15], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    a += ((b & c) | (~b & d)) + blocks[4];
AssertType(a += ((b & c) | (~b & d)) + blocks[4], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[4], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[5];
AssertType(d += ((a & b) | (~a & c)) + blocks[5], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[5], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[6];
AssertType(c += ((d & a) | (~d & b)) + blocks[6], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[6], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[7];
AssertType(b += ((c & d) | (~c & a)) + blocks[7], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[7], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[8];
AssertType(a += ((b & c) | (~b & d)) + blocks[8], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[8], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[9];
AssertType(d += ((a & b) | (~a & c)) + blocks[9], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[9], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[10];
AssertType(c += ((d & a) | (~d & b)) + blocks[10], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[10], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[11];
AssertType(b += ((c & d) | (~c & a)) + blocks[11], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[11], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[12];
AssertType(a += ((b & c) | (~b & d)) + blocks[12], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[12], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[13];
AssertType(d += ((a & b) | (~a & c)) + blocks[13], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[13], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[14];
AssertType(c += ((d & a) | (~d & b)) + blocks[14], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[14], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[15];
AssertType(b += ((c & d) | (~c & a)) + blocks[15], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[15], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;
AssertType(a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType((bc | (b & d) | (c & d)) + blocks[0], "any");
AssertType((bc | (b & d) | (c & d)), "number");
AssertType(bc | (b & d) | (c & d), "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[4], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[8] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[8], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[12] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[12], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[1], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[5], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[9] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[9], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[13] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[13], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[2], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[6], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[10] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[10], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[14] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[14], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[3], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[7], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[11] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[11], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;
AssertType(b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(b, "number");
AssertType(((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(((c & d) | (c & a) | da) + blocks[15], "any");
AssertType(((c & d) | (c & a) | da), "number");
AssertType((c & d) | (c & a) | da, "number");
AssertType((c & d) | (c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[0] + 1859775393;
AssertType(a += (bc ^ d) + blocks[0] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[0] + 1859775393, "any");
AssertType((bc ^ d) + blocks[0], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[8] + 1859775393;
AssertType(d += (bc ^ a) + blocks[8] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[8] + 1859775393, "any");
AssertType((bc ^ a) + blocks[8], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[4] + 1859775393;
AssertType(c += (da ^ b) + blocks[4] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[4] + 1859775393, "any");
AssertType((da ^ b) + blocks[4], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[12] + 1859775393;
AssertType(b += (da ^ c) + blocks[12] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[12] + 1859775393, "any");
AssertType((da ^ c) + blocks[12], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[2] + 1859775393;
AssertType(a += (bc ^ d) + blocks[2] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[2] + 1859775393, "any");
AssertType((bc ^ d) + blocks[2], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[10] + 1859775393;
AssertType(d += (bc ^ a) + blocks[10] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[10] + 1859775393, "any");
AssertType((bc ^ a) + blocks[10], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[6] + 1859775393;
AssertType(c += (da ^ b) + blocks[6] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[6] + 1859775393, "any");
AssertType((da ^ b) + blocks[6], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[14] + 1859775393;
AssertType(b += (da ^ c) + blocks[14] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[14] + 1859775393, "any");
AssertType((da ^ c) + blocks[14], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[1] + 1859775393;
AssertType(a += (bc ^ d) + blocks[1] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[1] + 1859775393, "any");
AssertType((bc ^ d) + blocks[1], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[9] + 1859775393;
AssertType(d += (bc ^ a) + blocks[9] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[9] + 1859775393, "any");
AssertType((bc ^ a) + blocks[9], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[5] + 1859775393;
AssertType(c += (da ^ b) + blocks[5] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[5] + 1859775393, "any");
AssertType((da ^ b) + blocks[5], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[13] + 1859775393;
AssertType(b += (da ^ c) + blocks[13] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[13] + 1859775393, "any");
AssertType((da ^ c) + blocks[13], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[3] + 1859775393;
AssertType(a += (bc ^ d) + blocks[3] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[3] + 1859775393, "any");
AssertType((bc ^ d) + blocks[3], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[11] + 1859775393;
AssertType(d += (bc ^ a) + blocks[11] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[11] + 1859775393, "any");
AssertType((bc ^ a) + blocks[11], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[7] + 1859775393;
AssertType(c += (da ^ b) + blocks[7] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[7] + 1859775393, "any");
AssertType((da ^ b) + blocks[7], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[15] + 1859775393;
AssertType(b += (da ^ c) + blocks[15] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[15] + 1859775393, "any");
AssertType((da ^ c) + blocks[15], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    a += ((b & c) | (~b & d)) + blocks[4];
AssertType(a += ((b & c) | (~b & d)) + blocks[4], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[4], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[5];
AssertType(d += ((a & b) | (~a & c)) + blocks[5], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[5], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[6];
AssertType(c += ((d & a) | (~d & b)) + blocks[6], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[6], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[7];
AssertType(b += ((c & d) | (~c & a)) + blocks[7], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[7], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[8];
AssertType(a += ((b & c) | (~b & d)) + blocks[8], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[8], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[9];
AssertType(d += ((a & b) | (~a & c)) + blocks[9], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[9], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[10];
AssertType(c += ((d & a) | (~d & b)) + blocks[10], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[10], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[11];
AssertType(b += ((c & d) | (~c & a)) + blocks[11], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[11], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[12];
AssertType(a += ((b & c) | (~b & d)) + blocks[12], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[12], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[13];
AssertType(d += ((a & b) | (~a & c)) + blocks[13], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[13], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[14];
AssertType(c += ((d & a) | (~d & b)) + blocks[14], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[14], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[15];
AssertType(b += ((c & d) | (~c & a)) + blocks[15], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[15], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;
AssertType(a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType((bc | (b & d) | (c & d)) + blocks[0], "any");
AssertType((bc | (b & d) | (c & d)), "number");
AssertType(bc | (b & d) | (c & d), "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[4], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[8] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[8], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[12] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[12], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[1], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[5], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[9] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[9], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[13] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[13], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[2], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[6], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[10] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[10], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[14] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[14], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[3], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[7], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[11] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[11], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;
AssertType(b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(b, "number");
AssertType(((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(((c & d) | (c & a) | da) + blocks[15], "any");
AssertType(((c & d) | (c & a) | da), "number");
AssertType((c & d) | (c & a) | da, "number");
AssertType((c & d) | (c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[0] + 1859775393;
AssertType(a += (bc ^ d) + blocks[0] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[0] + 1859775393, "any");
AssertType((bc ^ d) + blocks[0], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[8] + 1859775393;
AssertType(d += (bc ^ a) + blocks[8] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[8] + 1859775393, "any");
AssertType((bc ^ a) + blocks[8], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[4] + 1859775393;
AssertType(c += (da ^ b) + blocks[4] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[4] + 1859775393, "any");
AssertType((da ^ b) + blocks[4], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[12] + 1859775393;
AssertType(b += (da ^ c) + blocks[12] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[12] + 1859775393, "any");
AssertType((da ^ c) + blocks[12], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[2] + 1859775393;
AssertType(a += (bc ^ d) + blocks[2] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[2] + 1859775393, "any");
AssertType((bc ^ d) + blocks[2], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[10] + 1859775393;
AssertType(d += (bc ^ a) + blocks[10] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[10] + 1859775393, "any");
AssertType((bc ^ a) + blocks[10], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[6] + 1859775393;
AssertType(c += (da ^ b) + blocks[6] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[6] + 1859775393, "any");
AssertType((da ^ b) + blocks[6], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[14] + 1859775393;
AssertType(b += (da ^ c) + blocks[14] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[14] + 1859775393, "any");
AssertType((da ^ c) + blocks[14], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[1] + 1859775393;
AssertType(a += (bc ^ d) + blocks[1] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[1] + 1859775393, "any");
AssertType((bc ^ d) + blocks[1], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[9] + 1859775393;
AssertType(d += (bc ^ a) + blocks[9] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[9] + 1859775393, "any");
AssertType((bc ^ a) + blocks[9], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[5] + 1859775393;
AssertType(c += (da ^ b) + blocks[5] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[5] + 1859775393, "any");
AssertType((da ^ b) + blocks[5], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[13] + 1859775393;
AssertType(b += (da ^ c) + blocks[13] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[13] + 1859775393, "any");
AssertType((da ^ c) + blocks[13], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[3] + 1859775393;
AssertType(a += (bc ^ d) + blocks[3] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[3] + 1859775393, "any");
AssertType((bc ^ d) + blocks[3], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[11] + 1859775393;
AssertType(d += (bc ^ a) + blocks[11] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[11] + 1859775393, "any");
AssertType((bc ^ a) + blocks[11], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[7] + 1859775393;
AssertType(c += (da ^ b) + blocks[7] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[7] + 1859775393, "any");
AssertType((da ^ b) + blocks[7], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[15] + 1859775393;
AssertType(b += (da ^ c) + blocks[15] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[15] + 1859775393, "any");
AssertType((da ^ c) + blocks[15], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    a += ((b & c) | (~b & d)) + blocks[4];
AssertType(a += ((b & c) | (~b & d)) + blocks[4], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[4], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[5];
AssertType(d += ((a & b) | (~a & c)) + blocks[5], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[5], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[6];
AssertType(c += ((d & a) | (~d & b)) + blocks[6], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[6], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[7];
AssertType(b += ((c & d) | (~c & a)) + blocks[7], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[7], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[8];
AssertType(a += ((b & c) | (~b & d)) + blocks[8], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[8], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[9];
AssertType(d += ((a & b) | (~a & c)) + blocks[9], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[9], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[10];
AssertType(c += ((d & a) | (~d & b)) + blocks[10], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[10], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[11];
AssertType(b += ((c & d) | (~c & a)) + blocks[11], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[11], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[12];
AssertType(a += ((b & c) | (~b & d)) + blocks[12], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[12], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[13];
AssertType(d += ((a & b) | (~a & c)) + blocks[13], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[13], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[14];
AssertType(c += ((d & a) | (~d & b)) + blocks[14], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[14], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[15];
AssertType(b += ((c & d) | (~c & a)) + blocks[15], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[15], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;
AssertType(a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType((bc | (b & d) | (c & d)) + blocks[0], "any");
AssertType((bc | (b & d) | (c & d)), "number");
AssertType(bc | (b & d) | (c & d), "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[4], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[8] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[8], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[12] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[12], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[1], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[5], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[9] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[9], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[13] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[13], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[2], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[6], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[10] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[10], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[14] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[14], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[3], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[7], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[11] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[11], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;
AssertType(b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(b, "number");
AssertType(((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(((c & d) | (c & a) | da) + blocks[15], "any");
AssertType(((c & d) | (c & a) | da), "number");
AssertType((c & d) | (c & a) | da, "number");
AssertType((c & d) | (c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[0] + 1859775393;
AssertType(a += (bc ^ d) + blocks[0] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[0] + 1859775393, "any");
AssertType((bc ^ d) + blocks[0], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[8] + 1859775393;
AssertType(d += (bc ^ a) + blocks[8] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[8] + 1859775393, "any");
AssertType((bc ^ a) + blocks[8], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[4] + 1859775393;
AssertType(c += (da ^ b) + blocks[4] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[4] + 1859775393, "any");
AssertType((da ^ b) + blocks[4], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[12] + 1859775393;
AssertType(b += (da ^ c) + blocks[12] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[12] + 1859775393, "any");
AssertType((da ^ c) + blocks[12], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[2] + 1859775393;
AssertType(a += (bc ^ d) + blocks[2] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[2] + 1859775393, "any");
AssertType((bc ^ d) + blocks[2], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[10] + 1859775393;
AssertType(d += (bc ^ a) + blocks[10] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[10] + 1859775393, "any");
AssertType((bc ^ a) + blocks[10], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[6] + 1859775393;
AssertType(c += (da ^ b) + blocks[6] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[6] + 1859775393, "any");
AssertType((da ^ b) + blocks[6], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[14] + 1859775393;
AssertType(b += (da ^ c) + blocks[14] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[14] + 1859775393, "any");
AssertType((da ^ c) + blocks[14], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[1] + 1859775393;
AssertType(a += (bc ^ d) + blocks[1] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[1] + 1859775393, "any");
AssertType((bc ^ d) + blocks[1], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[9] + 1859775393;
AssertType(d += (bc ^ a) + blocks[9] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[9] + 1859775393, "any");
AssertType((bc ^ a) + blocks[9], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[5] + 1859775393;
AssertType(c += (da ^ b) + blocks[5] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[5] + 1859775393, "any");
AssertType((da ^ b) + blocks[5], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[13] + 1859775393;
AssertType(b += (da ^ c) + blocks[13] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[13] + 1859775393, "any");
AssertType((da ^ c) + blocks[13], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[3] + 1859775393;
AssertType(a += (bc ^ d) + blocks[3] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[3] + 1859775393, "any");
AssertType((bc ^ d) + blocks[3], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[11] + 1859775393;
AssertType(d += (bc ^ a) + blocks[11] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[11] + 1859775393, "any");
AssertType((bc ^ a) + blocks[11], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[7] + 1859775393;
AssertType(c += (da ^ b) + blocks[7] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[7] + 1859775393, "any");
AssertType((da ^ b) + blocks[7], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[15] + 1859775393;
AssertType(b += (da ^ c) + blocks[15] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[15] + 1859775393, "any");
AssertType((da ^ c) + blocks[15], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    a += ((b & c) | (~b & d)) + blocks[4];
AssertType(a += ((b & c) | (~b & d)) + blocks[4], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[4], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[5];
AssertType(d += ((a & b) | (~a & c)) + blocks[5], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[5], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[6];
AssertType(c += ((d & a) | (~d & b)) + blocks[6], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[6], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[7];
AssertType(b += ((c & d) | (~c & a)) + blocks[7], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[7], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[8];
AssertType(a += ((b & c) | (~b & d)) + blocks[8], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[8], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[9];
AssertType(d += ((a & b) | (~a & c)) + blocks[9], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[9], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[10];
AssertType(c += ((d & a) | (~d & b)) + blocks[10], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[10], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[11];
AssertType(b += ((c & d) | (~c & a)) + blocks[11], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[11], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    a += ((b & c) | (~b & d)) + blocks[12];
AssertType(a += ((b & c) | (~b & d)) + blocks[12], "any");
AssertType(a, "number");
AssertType(((b & c) | (~b & d)) + blocks[12], "any");
AssertType(((b & c) | (~b & d)), "number");
AssertType((b & c) | (~b & d), "number");
AssertType((b & c), "number");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");
AssertType((~b & d), "number");
AssertType(~b & d, "number");
AssertType(~b, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += ((a & b) | (~a & c)) + blocks[13];
AssertType(d += ((a & b) | (~a & c)) + blocks[13], "any");
AssertType(d, "number");
AssertType(((a & b) | (~a & c)) + blocks[13], "any");
AssertType(((a & b) | (~a & c)), "number");
AssertType((a & b) | (~a & c), "number");
AssertType((a & b), "number");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");
AssertType((~a & c), "number");
AssertType(~a & c, "number");
AssertType(~a, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");

    d = (d << 7) | (d >>> 25);
AssertType(d = (d << 7) | (d >>> 25), "number");
AssertType(d, "any");
AssertType((d << 7) | (d >>> 25), "number");
AssertType((d << 7), "number");
AssertType(d << 7, "number");
AssertType(d, "number");
AssertType(7, "int");
AssertType((d >>> 25), "number");
AssertType(d >>> 25, "number");
AssertType(d, "number");
AssertType(25, "int");

    c += ((d & a) | (~d & b)) + blocks[14];
AssertType(c += ((d & a) | (~d & b)) + blocks[14], "any");
AssertType(c, "number");
AssertType(((d & a) | (~d & b)) + blocks[14], "any");
AssertType(((d & a) | (~d & b)), "number");
AssertType((d & a) | (~d & b), "number");
AssertType((d & a), "number");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");
AssertType((~d & b), "number");
AssertType(~d & b, "number");
AssertType(~d, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += ((c & d) | (~c & a)) + blocks[15];
AssertType(b += ((c & d) | (~c & a)) + blocks[15], "any");
AssertType(b, "number");
AssertType(((c & d) | (~c & a)) + blocks[15], "any");
AssertType(((c & d) | (~c & a)), "number");
AssertType((c & d) | (~c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((~c & a), "number");
AssertType(~c & a, "number");
AssertType(~c, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");

    b = (b << 19) | (b >>> 13);
AssertType(b = (b << 19) | (b >>> 13), "number");
AssertType(b, "any");
AssertType((b << 19) | (b >>> 13), "number");
AssertType((b << 19), "number");
AssertType(b << 19, "number");
AssertType(b, "number");
AssertType(19, "int");
AssertType((b >>> 13), "number");
AssertType(b >>> 13, "number");
AssertType(b, "number");
AssertType(13, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249;
AssertType(a += (bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | (c & d)) + blocks[0] + 1518500249, "any");
AssertType((bc | (b & d) | (c & d)) + blocks[0], "any");
AssertType((bc | (b & d) | (c & d)), "number");
AssertType(bc | (b & d) | (c & d), "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[4] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[4] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[4], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[8] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[8] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[8], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[12] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[12] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[12], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[1] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[1] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[1], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[5] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[5] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[5], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[9] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[9] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[9], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[13] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[13] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[13], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[2] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[2] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[2], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[6] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[6] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[6], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[10] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[10] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[10], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    cd = c & d;
AssertType(cd = c & d, "number");
AssertType(cd, "any");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");

    b += (cd | (c & a) | da) + blocks[14] + 1518500249;
AssertType(b += (cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType(b, "number");
AssertType((cd | (c & a) | da) + blocks[14] + 1518500249, "any");
AssertType((cd | (c & a) | da) + blocks[14], "any");
AssertType((cd | (c & a) | da), "number");
AssertType(cd | (c & a) | da, "number");
AssertType(cd | (c & a), "number");
AssertType(cd, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b & c;
AssertType(bc = b & c, "number");
AssertType(bc, "any");
AssertType(b & c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc | (b & d) | cd) + blocks[3] + 1518500249;
AssertType(a += (bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType(a, "number");
AssertType((bc | (b & d) | cd) + blocks[3] + 1518500249, "any");
AssertType((bc | (b & d) | cd) + blocks[3], "any");
AssertType((bc | (b & d) | cd), "number");
AssertType(bc | (b & d) | cd, "number");
AssertType(bc | (b & d), "number");
AssertType(bc, "number");
AssertType((b & d), "number");
AssertType(b & d, "number");
AssertType(b, "number");
AssertType(d, "number");
AssertType(cd, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1518500249, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    ab = a & b;
AssertType(ab = a & b, "number");
AssertType(ab, "any");
AssertType(a & b, "number");
AssertType(a, "number");
AssertType(b, "number");

    d += (ab | (a & c) | bc) + blocks[7] + 1518500249;
AssertType(d += (ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType(d, "number");
AssertType((ab | (a & c) | bc) + blocks[7] + 1518500249, "any");
AssertType((ab | (a & c) | bc) + blocks[7], "any");
AssertType((ab | (a & c) | bc), "number");
AssertType(ab | (a & c) | bc, "number");
AssertType(ab | (a & c), "number");
AssertType(ab, "number");
AssertType((a & c), "number");
AssertType(a & c, "number");
AssertType(a, "number");
AssertType(c, "number");
AssertType(bc, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1518500249, "int");

    d = (d << 5) | (d >>> 27);
AssertType(d = (d << 5) | (d >>> 27), "number");
AssertType(d, "any");
AssertType((d << 5) | (d >>> 27), "number");
AssertType((d << 5), "number");
AssertType(d << 5, "number");
AssertType(d, "number");
AssertType(5, "int");
AssertType((d >>> 27), "number");
AssertType(d >>> 27, "number");
AssertType(d, "number");
AssertType(27, "int");

    da = d & a;
AssertType(da = d & a, "number");
AssertType(da, "any");
AssertType(d & a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da | (d & b) | ab) + blocks[11] + 1518500249;
AssertType(c += (da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType(c, "number");
AssertType((da | (d & b) | ab) + blocks[11] + 1518500249, "any");
AssertType((da | (d & b) | ab) + blocks[11], "any");
AssertType((da | (d & b) | ab), "number");
AssertType(da | (d & b) | ab, "number");
AssertType(da | (d & b), "number");
AssertType(da, "number");
AssertType((d & b), "number");
AssertType(d & b, "number");
AssertType(d, "number");
AssertType(b, "number");
AssertType(ab, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1518500249, "int");

    c = (c << 9) | (c >>> 23);
AssertType(c = (c << 9) | (c >>> 23), "number");
AssertType(c, "any");
AssertType((c << 9) | (c >>> 23), "number");
AssertType((c << 9), "number");
AssertType(c << 9, "number");
AssertType(c, "number");
AssertType(9, "int");
AssertType((c >>> 23), "number");
AssertType(c >>> 23, "number");
AssertType(c, "number");
AssertType(23, "int");

    b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249;
AssertType(b += ((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(b, "number");
AssertType(((c & d) | (c & a) | da) + blocks[15] + 1518500249, "any");
AssertType(((c & d) | (c & a) | da) + blocks[15], "any");
AssertType(((c & d) | (c & a) | da), "number");
AssertType((c & d) | (c & a) | da, "number");
AssertType((c & d) | (c & a), "number");
AssertType((c & d), "number");
AssertType(c & d, "number");
AssertType(c, "number");
AssertType(d, "number");
AssertType((c & a), "number");
AssertType(c & a, "number");
AssertType(c, "number");
AssertType(a, "number");
AssertType(da, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1518500249, "int");

    b = (b << 13) | (b >>> 19);
AssertType(b = (b << 13) | (b >>> 19), "number");
AssertType(b, "any");
AssertType((b << 13) | (b >>> 19), "number");
AssertType((b << 13), "number");
AssertType(b << 13, "number");
AssertType(b, "number");
AssertType(13, "int");
AssertType((b >>> 19), "number");
AssertType(b >>> 19, "number");
AssertType(b, "number");
AssertType(19, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[0] + 1859775393;
AssertType(a += (bc ^ d) + blocks[0] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[0] + 1859775393, "any");
AssertType((bc ^ d) + blocks[0], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[0], "any");
AssertType(blocks, "any");
AssertType(0, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[8] + 1859775393;
AssertType(d += (bc ^ a) + blocks[8] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[8] + 1859775393, "any");
AssertType((bc ^ a) + blocks[8], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[8], "any");
AssertType(blocks, "any");
AssertType(8, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[4] + 1859775393;
AssertType(c += (da ^ b) + blocks[4] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[4] + 1859775393, "any");
AssertType((da ^ b) + blocks[4], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[4], "any");
AssertType(blocks, "any");
AssertType(4, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[12] + 1859775393;
AssertType(b += (da ^ c) + blocks[12] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[12] + 1859775393, "any");
AssertType((da ^ c) + blocks[12], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[12], "any");
AssertType(blocks, "any");
AssertType(12, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[2] + 1859775393;
AssertType(a += (bc ^ d) + blocks[2] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[2] + 1859775393, "any");
AssertType((bc ^ d) + blocks[2], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[2], "any");
AssertType(blocks, "any");
AssertType(2, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[10] + 1859775393;
AssertType(d += (bc ^ a) + blocks[10] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[10] + 1859775393, "any");
AssertType((bc ^ a) + blocks[10], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[10], "any");
AssertType(blocks, "any");
AssertType(10, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[6] + 1859775393;
AssertType(c += (da ^ b) + blocks[6] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[6] + 1859775393, "any");
AssertType((da ^ b) + blocks[6], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[6], "any");
AssertType(blocks, "any");
AssertType(6, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[14] + 1859775393;
AssertType(b += (da ^ c) + blocks[14] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[14] + 1859775393, "any");
AssertType((da ^ c) + blocks[14], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[14], "any");
AssertType(blocks, "any");
AssertType(14, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[1] + 1859775393;
AssertType(a += (bc ^ d) + blocks[1] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[1] + 1859775393, "any");
AssertType((bc ^ d) + blocks[1], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[1], "any");
AssertType(blocks, "any");
AssertType(1, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[9] + 1859775393;
AssertType(d += (bc ^ a) + blocks[9] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[9] + 1859775393, "any");
AssertType((bc ^ a) + blocks[9], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[9], "any");
AssertType(blocks, "any");
AssertType(9, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[5] + 1859775393;
AssertType(c += (da ^ b) + blocks[5] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[5] + 1859775393, "any");
AssertType((da ^ b) + blocks[5], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[5], "any");
AssertType(blocks, "any");
AssertType(5, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[13] + 1859775393;
AssertType(b += (da ^ c) + blocks[13] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[13] + 1859775393, "any");
AssertType((da ^ c) + blocks[13], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[13], "any");
AssertType(blocks, "any");
AssertType(13, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    bc = b ^ c;
AssertType(bc = b ^ c, "number");
AssertType(bc, "any");
AssertType(b ^ c, "number");
AssertType(b, "number");
AssertType(c, "number");

    a += (bc ^ d) + blocks[3] + 1859775393;
AssertType(a += (bc ^ d) + blocks[3] + 1859775393, "any");
AssertType(a, "number");
AssertType((bc ^ d) + blocks[3] + 1859775393, "any");
AssertType((bc ^ d) + blocks[3], "any");
AssertType((bc ^ d), "number");
AssertType(bc ^ d, "number");
AssertType(bc, "number");
AssertType(d, "number");
AssertType(blocks[3], "any");
AssertType(blocks, "any");
AssertType(3, "int");
AssertType(1859775393, "int");

    a = (a << 3) | (a >>> 29);
AssertType(a = (a << 3) | (a >>> 29), "number");
AssertType(a, "any");
AssertType((a << 3) | (a >>> 29), "number");
AssertType((a << 3), "number");
AssertType(a << 3, "number");
AssertType(a, "number");
AssertType(3, "int");
AssertType((a >>> 29), "number");
AssertType(a >>> 29, "number");
AssertType(a, "number");
AssertType(29, "int");

    d += (bc ^ a) + blocks[11] + 1859775393;
AssertType(d += (bc ^ a) + blocks[11] + 1859775393, "any");
AssertType(d, "number");
AssertType((bc ^ a) + blocks[11] + 1859775393, "any");
AssertType((bc ^ a) + blocks[11], "any");
AssertType((bc ^ a), "number");
AssertType(bc ^ a, "number");
AssertType(bc, "number");
AssertType(a, "number");
AssertType(blocks[11], "any");
AssertType(blocks, "any");
AssertType(11, "int");
AssertType(1859775393, "int");

    d = (d << 9) | (d >>> 23);
AssertType(d = (d << 9) | (d >>> 23), "number");
AssertType(d, "any");
AssertType((d << 9) | (d >>> 23), "number");
AssertType((d << 9), "number");
AssertType(d << 9, "number");
AssertType(d, "number");
AssertType(9, "int");
AssertType((d >>> 23), "number");
AssertType(d >>> 23, "number");
AssertType(d, "number");
AssertType(23, "int");

    da = d ^ a;
AssertType(da = d ^ a, "number");
AssertType(da, "any");
AssertType(d ^ a, "number");
AssertType(d, "number");
AssertType(a, "number");

    c += (da ^ b) + blocks[7] + 1859775393;
AssertType(c += (da ^ b) + blocks[7] + 1859775393, "any");
AssertType(c, "number");
AssertType((da ^ b) + blocks[7] + 1859775393, "any");
AssertType((da ^ b) + blocks[7], "any");
AssertType((da ^ b), "number");
AssertType(da ^ b, "number");
AssertType(da, "number");
AssertType(b, "number");
AssertType(blocks[7], "any");
AssertType(blocks, "any");
AssertType(7, "int");
AssertType(1859775393, "int");

    c = (c << 11) | (c >>> 21);
AssertType(c = (c << 11) | (c >>> 21), "number");
AssertType(c, "any");
AssertType((c << 11) | (c >>> 21), "number");
AssertType((c << 11), "number");
AssertType(c << 11, "number");
AssertType(c, "number");
AssertType(11, "int");
AssertType((c >>> 21), "number");
AssertType(c >>> 21, "number");
AssertType(c, "number");
AssertType(21, "int");

    b += (da ^ c) + blocks[15] + 1859775393;
AssertType(b += (da ^ c) + blocks[15] + 1859775393, "any");
AssertType(b, "number");
AssertType((da ^ c) + blocks[15] + 1859775393, "any");
AssertType((da ^ c) + blocks[15], "any");
AssertType((da ^ c), "number");
AssertType(da ^ c, "number");
AssertType(da, "number");
AssertType(c, "number");
AssertType(blocks[15], "any");
AssertType(blocks, "any");
AssertType(15, "int");
AssertType(1859775393, "int");

    b = (b << 15) | (b >>> 17);
AssertType(b = (b << 15) | (b >>> 17), "number");
AssertType(b, "any");
AssertType((b << 15) | (b >>> 17), "number");
AssertType((b << 15), "number");
AssertType(b << 15, "number");
AssertType(b, "number");
AssertType(15, "int");
AssertType((b >>> 17), "number");
AssertType(b >>> 17, "number");
AssertType(b, "number");
AssertType(17, "int");

    if (this.first) {
AssertType(this.first, "any");
AssertType(this, "any");

        this.h0 = a + 1732584193 << 0;
AssertType(this.h0 = a + 1732584193 << 0, "number");
AssertType(this.h0, "any");
AssertType(this, "any");
AssertType(a + 1732584193 << 0, "number");
AssertType(a + 1732584193, "number");
AssertType(a, "number");
AssertType(1732584193, "int");
AssertType(0, "int");

        this.h1 = b - 271733879 << 0;
AssertType(this.h1 = b - 271733879 << 0, "number");
AssertType(this.h1, "any");
AssertType(this, "any");
AssertType(b - 271733879 << 0, "number");
AssertType(b - 271733879, "number");
AssertType(b, "number");
AssertType(271733879, "int");
AssertType(0, "int");

        this.h2 = c - 1732584194 << 0;
AssertType(this.h2 = c - 1732584194 << 0, "number");
AssertType(this.h2, "any");
AssertType(this, "any");
AssertType(c - 1732584194 << 0, "number");
AssertType(c - 1732584194, "number");
AssertType(c, "number");
AssertType(1732584194, "int");
AssertType(0, "int");

        this.h3 = d + 271733878 << 0;
AssertType(this.h3 = d + 271733878 << 0, "number");
AssertType(this.h3, "any");
AssertType(this, "any");
AssertType(d + 271733878 << 0, "number");
AssertType(d + 271733878, "number");
AssertType(d, "number");
AssertType(271733878, "int");
AssertType(0, "int");

        this.first = false;
AssertType(this.first = false, "boolean");
AssertType(this.first, "any");
AssertType(this, "any");
AssertType(false, "boolean");

    } else {
        this.h0 = this.h0 + a << 0;
AssertType(this.h0 = this.h0 + a << 0, "number");
AssertType(this.h0, "any");
AssertType(this, "any");
AssertType(this.h0 + a << 0, "number");
AssertType(this.h0 + a, "any");
AssertType(this.h0, "any");
AssertType(this, "any");
AssertType(a, "number");
AssertType(0, "int");

        this.h1 = this.h1 + b << 0;
AssertType(this.h1 = this.h1 + b << 0, "number");
AssertType(this.h1, "any");
AssertType(this, "any");
AssertType(this.h1 + b << 0, "number");
AssertType(this.h1 + b, "any");
AssertType(this.h1, "any");
AssertType(this, "any");
AssertType(b, "number");
AssertType(0, "int");

        this.h2 = this.h2 + c << 0;
AssertType(this.h2 = this.h2 + c << 0, "number");
AssertType(this.h2, "any");
AssertType(this, "any");
AssertType(this.h2 + c << 0, "number");
AssertType(this.h2 + c, "any");
AssertType(this.h2, "any");
AssertType(this, "any");
AssertType(c, "number");
AssertType(0, "int");

        this.h3 = this.h3 + d << 0;
AssertType(this.h3 = this.h3 + d << 0, "number");
AssertType(this.h3, "any");
AssertType(this, "any");
AssertType(this.h3 + d << 0, "number");
AssertType(this.h3 + d, "any");
AssertType(this.h3, "any");
AssertType(this, "any");
AssertType(d, "number");
AssertType(0, "int");
    }
};

